using System;
using System.Collections.ObjectModel;
using System.Threading.Tasks;

namespace Clancy.Interfaces
{
    public interface ISurveilanceLogic : IDisposable
    {
        ISurveilanceObject AddNewSource(ISurveilanceObject surveilanceObject);

        ISurveilanceObject AddNewSource(IVideoSourceFilterInfo videoSourceFilterInfo);

        Task DeleteSurveilance(ISurveilanceObject surveilanceObject);

        ISurveilanceStatus GetSurveilance(ISurveilanceObject surveilanceObject);

        void LoadConfiguration(string filename);

        void SaveConfiguration(string filename);

        void Start();

        void Stop();
    }
}